Import Dataset

TBC = read.csv("TBC_2016.csv",header=TRUE,sep=";")
TBC = TBC[30:57]
TBC = TBC[,c(2,9,10,12,13,14,15,16,17)]

K-Means

On applique les K-means:

TBC = as.data.frame(apply(TBC,2,FUN=function(x) replace(x,is.na(x),mean(x,na.rm=TRUE))))
groupes.kmeans <-  kmeans(TBC,centers=3,nstart=3)
print(groupes.kmeans)
K-means clustering with 3 clusters of sizes 2345, 117, 788

Cluster means:
  ANCIENNETE_16 MONTANT_CUMULE_16 NB_VISITE_16 NB_PRDT_MOY_VISITE_16 RECENCE_16 NB_MAG_DIFF_16 NB_LIGNE_DIFF_16 NB_FAM_DIFF_16 NB_CADEAUX_16
1      54.35288          476.2448     5.942431              3.332581  100.13092       1.809382         2.211940       6.484009      3.593603
2      57.24786         2587.1026    22.222222              4.950956   43.77778       2.649573         2.948718      11.717949     19.470085
3      57.62246         1139.0330    11.869289              4.167973   64.38198       2.239848         2.710660       9.652284      9.755076

Clustering vector:
    1    10    11    88   209   219   243   308   339   458   472   498   552   572   657   724   760   848   902   912   947   964   983  1045 
    1     1     1     1     3     1     1     1     3     3     1     3     1     1     1     1     1     2     1     1     1     1     1     3 
 1072  1187  1197  1200  1238  1241  1310  1353  1363  1395  1421  1433  1504  1526  1530  1548  1556  1571  1577  1582  1623  1627  1664  1725 
    1     2     3     1     1     1     1     3     1     1     1     3     1     3     3     1     3     1     1     1     1     1     3     1 
 1730  1738  1772  1786  1801  1811  1824  1852  1861  1863  1865  1901  1906  1934  1939  1940  1950  2029  2046  2053  2098  2103  2134  2145 
    1     1     3     3     1     3     3     2     3     3     3     1     1     3     2     1     1     1     1     3     1     1     1     3 
 2165  2201  2232  2255  2262  2267  2271  2308  2318  2333  2338  2342  2351  2356  2382  2434  2448  2457  2468  2471  2473  2487  2491  2516 
    3     1     1     1     1     1     1     3     1     1     2     1     1     1     1     1     3     1     1     1     1     1     1     1 
 2545  2549  2555  2570  2571  2636  2664  2693  2694  2712  2726  2759  2800  2853  2877  2878  2891  2915  2993  3001  3002  3037  3052  3166 
    1     1     1     1     1     3     3     3     1     3     1     3     1     1     1     1     3     1     1     3     1     1     1     1 
 3192  3193  3201  3202  3239  3258  3352  3358  3402  3417  3516  3602  3615  3630  3669  3735  3767  3892  3977  3986  4035  4044  4069  4123 
    2     1     1     3     3     1     1     1     1     1     1     3     2     2     3     1     1     1     1     3     3     3     3     1 
 4137  4256  4272  4292  4312  4379  4403  4415  4419  4459  4473  4487  4546  4554  4571  4578  4579  4609  4613  4637  4644  4696  4783  4803 
    1     1     3     1     2     1     1     2     1     1     3     1     1     3     3     1     1     1     1     3     1     1     3     1 
 4868  4915  4924  4934  4956  4979  4983  4987  4996  5012  5018  5048  5055  5086  5093  5125  5174  5192  5231  5298  5300  5308  5310  5312 
    3     3     3     1     1     1     3     2     3     3     1     1     1     1     1     1     3     3     1     1     1     1     1     1 
 5389  5400  5418  5496  5525  5574  5620  5627  5634  5642  5651  5754  5818  5827  5833  5834  5873  5935  5951  5967  6004  6013  6047  6060 
    3     1     3     3     1     1     1     3     3     1     1     1     1     3     2     3     3     3     1     1     1     1     1     1 
 6078  6229  6232  6341  6359  6367  6373  6382  6385  6401  6467  6526  6533  6564  6691  6709  6794  6805  6811  6814  6827  6834  6909  7017 
    1     1     3     1     1     1     1     1     1     1     1     2     3     1     3     3     3     1     1     1     1     1     1     1 
 7051  7086  7215  7228  7239  7272  7300  7305  7339  7345  7349  7369  7402  7421  7433  7448  7457  7479  7511  7551  7562  7572  7603  7716 
    1     1     1     1     1     1     1     3     3     1     1     1     3     1     1     1     3     1     1     2     1     1     1     1 
 7727  7732  7744  7745  7771  7802  7810  7820  7840  7865  7902  7906  7916  7920  7936  7945  7952  7973  7974  7981  7998  8018  8065  8078 
    1     1     1     1     1     1     1     3     1     1     1     1     1     1     1     1     1     2     3     1     1     3     1     3 
 8081  8087  8107  8168  8172  8186  8299  8365  8369  8382  8401  8422  8438  8464  8555  8561  8570  8609  8622  8624  8695  8722  8725  8777 
    1     1     1     1     1     1     1     1     3     1     1     1     1     1     1     3     3     1     1     1     1     1     3     1 
 8795  8815  8858  8863  8898  8902  8911  8922  8924  8996  9009  9027  9063  9072  9108  9134  9143  9149  9163  9177  9210  9225  9252  9311 
    1     1     1     3     1     3     3     3     1     1     1     1     3     3     1     2     1     1     3     1     1     1     1     1 
 9365  9369  9397  9399  9400  9414  9420  9423  9443  9450  9452  9459  9462  9467  9509  9549  9574  9576  9578  9594  9680  9697  9715  9736 
    1     3     1     1     1     1     3     1     1     1     1     1     1     1     1     3     1     3     1     3     3     3     1     3 
 9747  9767  9776  9786  9830  9839  9861  9867  9894  9915  9933  9945  9951  9956  9970  9981  9982  9993  9994 10013 10014 10026 10039 10045 
    2     1     1     1     1     3     1     1     1     1     3     1     3     1     3     1     1     2     3     1     1     1     1     3 
10126 10150 10179 10273 10279 10293 10318 10325 10351 10363 10365 10371 10383 10401 10404 10405 10409 10477 10482 10511 10525 10533 10541 10554 
    3     1     1     1     3     1     1     3     1     2     1     3     1     1     1     1     1     3     3     3     3     1     1     1 
10597 10603 10609 10622 10629 10641 10665 10682 10684 10718 10728 10736 10744 10751 10761 10763 10764 10766 10822 10828 10858 10876 10895 10907 
    1     1     3     1     1     1     3     1     1     1     1     1     1     2     1     1     3     3     1     1     3     3     1     1 
11005 11037 11058 11062 11074 11078 11083 11084 11090 11102 11105 11118 11121 11136 11141 11143 11181 11191 11194 11201 11204 11210 11220 11236 
    3     1     1     1     1     3     1     1     1     2     1     1     1     1     3     3     1     1     1     1     1     1     1     1 
11240 11241 11251 11252 11254 11265 11268 11301 11305 11309 11312 11317 11320 11336 11348 11351 11372 11373 11400 11403 11414 11422 11423 11433 
    1     3     1     1     1     1     1     1     1     1     1     3     1     1     3     3     1     1     3     1     3     3     1     3 
11442 11444 11445 11468 11470 11492 11495 11496 11506 11510 11513 11536 11541 11542 11544 11551 11600 11622 11640 11654 11663 11669 11692 11701 
    3     3     1     1     1     1     1     3     3     3     2     1     1     1     1     3     1     1     1     1     1     1     1     1 
11720 11728 11759 11764 11774 11811 11815 11823 11824 11827 11841 11844 11847 11854 11856 11859 11882 11888 11892 11893 11894 11911 11926 11929 
    1     1     3     3     1     3     1     1     1     1     3     1     3     1     1     3     1     1     2     3     3     3     1     1 
11939 11946 11952 11967 11982 11997 12005 12009 12016 12024 12038 12044 12045 12046 12057 12060 12062 12090 12119 12120 12125 12130 12137 12140 
    1     1     1     3     1     1     1     3     1     1     1     1     1     1     3     3     3     3     1     1     1     1     2     1 
12146 12186 12195 12196 12201 12223 12225 12231 12232 12242 12251 12258 12272 12291 12293 12314 12315 12319 12352 12353 12358 12365 12376 12414 
    3     1     1     1     3     3     1     3     1     3     1     3     1     3     1     1     1     3     1     1     3     3     1     1 
12421 12447 12451 12455 12463 12465 12474 12485 12491 12501 12507 12515 12536 12546 12547 12557 12563 12569 12578 12582 12596 12619 12620 12629 
    1     1     1     3     2     1     1     3     1     3     1     2     1     1     1     1     1     1     1     1     1     1     1     3 
12632 12633 12642 12647 12653 12655 12662 12665 12679 12680 12699 12710 12727 12728 12733 12739 12744 12749 12754 12756 12757 12761 12770 12773 
    1     1     1     1     1     1     1     1     3     1     3     1     1     1     1     1     2     1     1     3     1     1     3     1 
12780 12786 12789 12790 12800 12802 12807 12809 12810 12817 12825 12827 12834 12844 12857 12859 12876 12883 12897 12899 12900 12914 12918 12929 
    1     1     1     1     1     1     3     1     1     2     3     1     1     1     3     3     1     1     1     1     3     1     3     3 
12937 12940 12942 12947 12952 12954 12956 12958 12960 12979 12984 13007 13015 13017 13019 13025 13029 13032 13041 13045 13046 13057 13069 13077 
    1     1     1     1     1     1     1     1     3     3     1     1     3     1     1     1     3     3     1     3     1     1     1     3 
13080 13081 13088 13106 13107 13117 13122 13129 13131 13132 13138 13140 13197 13204 13220 13221 13240 13244 13265 13271 13276 13277 13286 13296 
    1     1     1     1     1     2     3     2     1     1     3     1     1     1     1     3     1     1     1     3     1     3     1     1 
13298 13299 13302 13313 13314 13323 13329 13340 13342 13356 13360 13365 13368 13370 13373 13380 13387 13402 13405 13411 13414 13421 13434 13438 
    1     1     3     1     3     1     1     3     2     2     1     1     1     1     3     1     3     3     1     1     1     1     1     1 
13439 13450 13455 13460 13462 13474 13476 13486 13488 13546 13549 13566 13570 13574 13588 13627 13634 13648 13650 13667 13669 13677 13681 13688 
    1     1     1     3     3     3     3     1     1     3     1     3     1     3     1     1     1     1     1     1     2     3     1     1 
13698 13699 13714 13724 13725 13727 13728 13739 13741 13765 13767 13779 13780 13787 13790 13799 13801 13816 13819 13821 13830 13840 13843 13846 
    1     1     1     1     3     3     1     1     1     3     1     1     1     1     1     1     1     1     1     3     3     3     1     1 
13848 13849 13855 13860 13885 13926 13928 13973 13982 13985 13986 13996 14008 14009 14014 14017 14020 14031 14036 14041 14047 14062 14063 14067 
    3     3     1     3     3     1     3     3     1     3     1     3     1     3     1     1     1     3     1     3     3     1     3     3 
14071 14074 14075 14081 14082 14084 14086 14096 14097 14101 14107 14127 14135 14138 14146 14152 14162 14163 14172 14176 14182 14187 14193 14195 
    3     1     1     1     3     1     2     1     3     3     1     1     1     1     1     1     1     1     1     1     3     3     1     1 
14216 14236 14237 14239 14243 14250 14252 14254 14257 14258 14272 14305 14306 14315 14320 14332 14343 14345 14360 14384 14385 14395 14400 14402 
    1     1     1     1     1     3     3     3     1     1     3     1     1     1     3     1     1     3     1     1     3     1     3     3 
14410 14412 14415 14436 14445 14446 14448 14450 14462 14488 14489 14490 14491 14492 14508 14510 14513 14517 14524 14526 14534 14541 14544 14556 
    1     1     1     1     1     3     1     3     3     3     3     3     1     1     3     3     3     1     1     1     1     2     1     1 
14559 14561 14577 14587 14588 14597 14612 14616 14618 14622 14635 14647 14650 14654 14659 14680 14682 14683 14691 14709 14713 14722 14728 14730 
    1     3     1     1     1     3     1     1     3     1     3     3     1     1     1     2     1     1     1     1     1     1     1     1 
14748 14750 14758 14761 14767 14768 14774 14775 14782 14785 14799 14807 14808 14815 14818 14834 14836 14856 14862 14871 14874 14877 14878 14883 
    1     1     1     1     3     1     1     3     1     1     1     3     1     3     3     1     1     3     1     1     1     3     1     2 
14896 14900 14913 14929 14931 14934 14941 14954 14963 14968 14973 14980 14981 14989 14991 14999 15011 15013 15015 15024 15040 15042 15050 15057 
    1     3     3     1     1     1     1     1     1     3     3     2     1     1     3     1     3     1     3     1     1     3     1     1 
15058 15064 15081 15126 15127 15130 15134 15136 15138 15146 15147 15154 15166 15184 15207 15208 15215 15225 15226 15227 15240 15245 15274 15278 
    1     2     1     1     1     1     3     3     1     1     3     1     3     1     1     3     2     1     1     1     1     1     1     1 
15298 15314 15334 15343 15344 15346 15354 15355 15356 15366 15376 15377 15387 15390 15391 15404 15407 15408 15418 15421 15424 15429 15435 15458 
    1     3     1     3     1     1     1     1     1     3     3     1     1     1     1     1     1     1     1     1     1     1     1     1 
15462 15463 15469 15475 15484 15491 15492 15493 15497 15498 15510 15513 15514 15517 15536 15537 
    1     3     1     1     1     2     1     3     1     1     3     1     1     1     1     1 
 [ reached getOption("max.print") -- omitted 2250 entries ]

Within cluster sum of squares by cluster:
[1] 73539802 76644528 59509534
 (between_SS / total_SS =  76.6 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss" "betweenss"    "size"         "iter"         "ifault"      
groupes=as.factor(groupes.kmeans$cluster)
TBC_groupe=cbind(TBC,groupes)
names(TBC_groupe)=c("ANCIENNETE", "MONTANT_CUMULE", "NB_VISITE", "NB_PRDT_MOY_VISITE", "RECENCE", "NB_MAG_DIFF", "NB_LIGNE_DIFF", "NB_FAMILLE_DIFF", "NB_CADEAUX", "groupes")

3D Plot

Graphique ‘3D MONTANT_CUMULE_16 NB_VISITE_16 NB_CADEAUX_16’:

#install.packages("plotly")
library(plotly)
levels(TBC_groupe$groupes)=c('Bronze', 'Silver', 'Gold')
classification <- plot_ly(data=TBC_groupe,x=~RECENCE,
        y=~NB_VISITE,z=~MONTANT_CUMULE,
        color=~groupes, colors=c("darkgoldenrod", "darkgrey", "Gold2"))
classification

classification2 <- plot_ly(data=TBC_groupe,x=~NB_CADEAUX,
                          y=~NB_LIGNE_DIFF,z=~NB_FAMILLE_DIFF,
                          color=~groupes, colors=c("darkgoldenrod", "darkgrey", "Gold2"))
classification2

    
summary(TBC_groupe)
   ANCIENNETE     MONTANT_CUMULE     NB_VISITE      NB_PRDT_MOY_VISITE    RECENCE        NB_MAG_DIFF     NB_LIGNE_DIFF   NB_FAMILLE_DIFF 
 Min.   : 24.00   Min.   : 165.0   Min.   : 2.000   Min.   : 1.000     Min.   :  0.00   Min.   : 1.000   Min.   :1.000   Min.   : 1.000  
 1st Qu.: 34.00   1st Qu.: 390.0   1st Qu.: 5.000   1st Qu.: 2.600     1st Qu.: 37.00   1st Qu.: 1.000   1st Qu.:2.000   1st Qu.: 6.000  
 Median : 49.00   Median : 560.5   Median : 6.000   Median : 3.286     Median : 65.00   Median : 2.000   Median :2.000   Median : 7.000  
 Mean   : 55.25   Mean   : 712.9   Mean   : 7.966   Mean   : 3.593     Mean   : 89.43   Mean   : 1.944   Mean   :2.359   Mean   : 7.441  
 3rd Qu.: 67.00   3rd Qu.: 849.0   3rd Qu.:10.000   3rd Qu.: 4.250     3rd Qu.:130.75   3rd Qu.: 2.000   3rd Qu.:3.000   3rd Qu.: 9.000  
 Max.   :113.00   Max.   :5183.0   Max.   :54.000   Max.   :16.000     Max.   :276.00   Max.   :10.000   Max.   :3.000   Max.   :15.000  
   NB_CADEAUX       groupes    
 Min.   : 0.000   Bronze:2345  
 1st Qu.: 2.000   Silver: 117  
 Median : 4.000   Gold  : 788  
 Mean   : 5.659                
 3rd Qu.: 8.000                
 Max.   :41.000                
LS0tDQp0aXRsZTogIkNsYXNzaWZpY2F0aW9uIENvbnNvbW1hdGV1ciINCmF1dGhvcjogIkphbiBNYWxpayINCmRhdGU6ICIxNSBNYXJjaCAyMDE4Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KPiBJbXBvcnQgRGF0YXNldA0KDQpgYGB7cn0NClRCQyA9IHJlYWQuY3N2KCJUQkNfMjAxNi5jc3YiLGhlYWRlcj1UUlVFLHNlcD0iOyIpDQpUQkMgPSBUQkNbMzA6NTddDQpUQkMgPSBUQkNbLGMoMiw5LDEwLDEyLDEzLDE0LDE1LDE2LDE3KV0NCmBgYA0KDQoNCiMgSy1NZWFucw0KDQpPbiBhcHBsaXF1ZSBsZXMgSy1tZWFuczoNCg0KYGBge3J9DQpUQkMgPSBhcy5kYXRhLmZyYW1lKGFwcGx5KFRCQywyLEZVTj1mdW5jdGlvbih4KSByZXBsYWNlKHgsaXMubmEoeCksbWVhbih4LG5hLnJtPVRSVUUpKSkpDQoNCmdyb3VwZXMua21lYW5zIDwtICBrbWVhbnMoVEJDLGNlbnRlcnM9Myxuc3RhcnQ9MykNCnByaW50KGdyb3VwZXMua21lYW5zKQ0KDQpncm91cGVzPWFzLmZhY3Rvcihncm91cGVzLmttZWFucyRjbHVzdGVyKQ0KVEJDX2dyb3VwZT1jYmluZChUQkMsZ3JvdXBlcykNCm5hbWVzKFRCQ19ncm91cGUpPWMoIkFOQ0lFTk5FVEUiLCAiTU9OVEFOVF9DVU1VTEUiLCAiTkJfVklTSVRFIiwgIk5CX1BSRFRfTU9ZX1ZJU0lURSIsICJSRUNFTkNFIiwgIk5CX01BR19ESUZGIiwgIk5CX0xJR05FX0RJRkYiLCAiTkJfRkFNSUxMRV9ESUZGIiwgIk5CX0NBREVBVVgiLCAiZ3JvdXBlcyIpDQpgYGANCg0KIyAzRCBQbG90DQoNCkdyYXBoaXF1ZSAqJzNEIE1PTlRBTlRfQ1VNVUxFXzE2IE5CX1ZJU0lURV8xNiBOQl9DQURFQVVYXzE2Jyo6DQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikNCmxpYnJhcnkocGxvdGx5KQ0KDQoNCmxldmVscyhUQkNfZ3JvdXBlJGdyb3VwZXMpPWMoJ0Jyb256ZScsICdTaWx2ZXInLCAnR29sZCcpDQoNCg0KY2xhc3NpZmljYXRpb24gPC0gcGxvdF9seShkYXRhPVRCQ19ncm91cGUseD1+UkVDRU5DRSwNCiAgICAgICAgeT1+TkJfVklTSVRFLHo9fk1PTlRBTlRfQ1VNVUxFLA0KICAgICAgICBjb2xvcj1+Z3JvdXBlcywgY29sb3JzPWMoImRhcmtnb2xkZW5yb2QiLCAiZGFya2dyZXkiLCAiR29sZDIiKSkNCmNsYXNzaWZpY2F0aW9uDQoNCmNsYXNzaWZpY2F0aW9uMiA8LSBwbG90X2x5KGRhdGE9VEJDX2dyb3VwZSx4PX5OQl9DQURFQVVYLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB5PX5OQl9MSUdORV9ESUZGLHo9fk5CX0ZBTUlMTEVfRElGRiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9fmdyb3VwZXMsIGNvbG9ycz1jKCJkYXJrZ29sZGVucm9kIiwgImRhcmtncmV5IiwgIkdvbGQyIikpDQpjbGFzc2lmaWNhdGlvbjINCiAgICANCnN1bW1hcnkoVEJDX2dyb3VwZSkNCmBgYA==